home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / dsbtrd.z / dsbtrd
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDSSSSBBBBTTTTRRRRDDDD((((3333FFFF))))                                                          DDDDSSSSBBBBTTTTRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DSBTRD - reduce a real symmetric band matrix A to symmetric tridiagonal
  10.      form T by an orthogonal similarity transformation
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE DSBTRD( VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO
  14.                         )
  15.  
  16.          CHARACTER      UPLO, VECT
  17.  
  18.          INTEGER        INFO, KD, LDAB, LDQ, N
  19.  
  20.          DOUBLE         PRECISION AB( LDAB, * ), D( * ), E( * ), Q( LDQ, * ),
  21.                         WORK( * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      DSBTRD reduces a real symmetric band matrix A to symmetric tridiagonal
  25.      form T by an orthogonal similarity transformation:  Q**T * A * Q = T.
  26.  
  27.  
  28. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  29.      VECT    (input) CHARACTER*1
  30.              = 'N':  do not form Q;
  31.              = 'V':  form Q;
  32.              = 'U':  update a matrix X, by forming X*Q.
  33.  
  34.      UPLO    (input) CHARACTER*1
  35.              = 'U':  Upper triangle of A is stored;
  36.              = 'L':  Lower triangle of A is stored.
  37.  
  38.      N       (input) INTEGER
  39.              The order of the matrix A.  N >= 0.
  40.  
  41.      KD      (input) INTEGER
  42.              The number of superdiagonals of the matrix A if UPLO = 'U', or
  43.              the number of subdiagonals if UPLO = 'L'.  KD >= 0.
  44.  
  45.      AB      (input/output) DOUBLE PRECISION array, dimension (LDAB,N)
  46.              On entry, the upper or lower triangle of the symmetric band
  47.              matrix A, stored in the first KD+1 rows of the array.  The j-th
  48.              column of A is stored in the j-th column of the array AB as
  49.              follows:  if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-
  50.              kd)<=i<=j; if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for
  51.              j<=i<=min(n,j+kd).  On exit, the diagonal elements of AB are
  52.              overwritten by the diagonal elements of the tridiagonal matrix T;
  53.              if KD > 0, the elements on the first superdiagonal (if UPLO =
  54.              'U') or the first subdiagonal (if UPLO = 'L') are overwritten by
  55.              the off-diagonal elements of T; the rest of AB is overwritten by
  56.              values generated during the reduction.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDSSSSBBBBTTTTRRRRDDDD((((3333FFFF))))                                                          DDDDSSSSBBBBTTTTRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDAB    (input) INTEGER
  75.              The leading dimension of the array AB.  LDAB >= KD+1.
  76.  
  77.      D       (output) DOUBLE PRECISION array, dimension (N)
  78.              The diagonal elements of the tridiagonal matrix T.
  79.  
  80.      E       (output) DOUBLE PRECISION array, dimension (N-1)
  81.              The off-diagonal elements of the tridiagonal matrix T:  E(i) =
  82.              T(i,i+1) if UPLO = 'U'; E(i) = T(i+1,i) if UPLO = 'L'.
  83.  
  84.      Q       (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
  85.              On entry, if VECT = 'U', then Q must contain an N-by-N matrix X;
  86.              if VECT = 'N' or 'V', then Q need not be set.
  87.  
  88.              On exit:  if VECT = 'V', Q contains the N-by-N orthogonal matrix
  89.              Q; if VECT = 'U', Q contains the product X*Q; if VECT = 'N', the
  90.              array Q is not referenced.
  91.  
  92.      LDQ     (input) INTEGER
  93.              The leading dimension of the array Q.  LDQ >= 1, and LDQ >= N if
  94.              VECT = 'V' or 'U'.
  95.  
  96.      WORK    (workspace) DOUBLE PRECISION array, dimension (N)
  97.  
  98.      INFO    (output) INTEGER
  99.              = 0:  successful exit
  100.              < 0:  if INFO = -i, the i-th argument had an illegal value
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.